//
//
//

// Stringifying various things

'use strict';

const defs = require('./defs');
const format = require('util').format;
const HEARTBEAT = require('./frame').HEARTBEAT;

module.exports.closeMessage = function (close) {
  const code = close.fields.replyCode;
  return format('%d (%s) with message "%s"', code, defs.constant_strs[code], close.fields.replyText);
};

module.exports.methodName = function (id) {
  return defs.info(id).name;
};

module.exports.inspect = function (frame, showFields) {
  if (frame === HEARTBEAT) {
    return '<Heartbeat>';
  } else if (!frame.id) {
    return format('<Content channel:%d size:%d>', frame.channel, frame.size);
  } else {
    const info = defs.info(frame.id);
    return format('<%s channel:%d%s>', info.name, frame.channel, showFields ? ' ' + JSON.stringify(frame.fields, undefined, 2) : '');
  }
};
